System and method for exposing a child list

ABSTRACT

An interface may be provided that enables the user to select a parent list, to view a set of available child lists corresponding to the selected parent list, and to select a particular child list from the set of available child lists. The set of available child lists may be automatically compiled in response to the selection of the parent list. Another interface may be provided that enables the user to select a particular portion of the parent list for which to view corresponding child data. The corresponding child data may be automatically identified and displayed in a running application.

REFERENCE TO RELATED APPLICATIONS

This application is related by subject matter to U.S. patent applicationSer. No. 10/769,637 entitled “System and Method for Providing a LogicalView of a Data Source” filed on Jan. 30, 2004, U.S. patent applicationSer. No. 10/768,525 entitled “System and Method for Generating aParameterized Query” filed on Jan. 30, 2004, and U.S. patent applicationSer. No. 10/768,522 entitled “System and Method for Exposing Tasks in aDevelopment Environment” filed on Jan. 30, 2004, the contents of whichare hereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

The present invention relates to the field of data retrieval andmanipulation and, more specifically, to exposing a child list that isrelated to a selected parent list.

BACKGROUND OF THE INVENTION

A development tool such as, for example, VISUAL STUDIO™ from MicrosoftCorp. of Redmond, Wash., enables development of a wide range ofcomputing applications. Such applications may include, for example, webapplications, extensible markup language (XML) applications, andtraditional client applications. If an application is data-driven, thenthe application may have one or more associated data sources. Such datasources may be for example, databases, web services, extensible markuplanguage (XML) documents, and business objects. Such data sources may beused to categorize, organize, and maintain lists that are useful to anapplication. To assist in the development process, the development toolenables the user to view, manage, and manipulate lists within such datasources. The term list, as used herein, refers to any ordered set ofdata such as, for example, a data table.

It is often desirable for a user to view and manage data from a numberof related lists. Specifically, such lists may have a parent childrelationship with one another. For example, a parent “Customers” listmay store a number of records each corresponding to a particularcustomer. Each such record may include data for a set of customerattributes such as, for example, a customer identifier (“ID”), a name,and a zip code. The customer ID attribute in the Customers list is adistinct lookup key referred to as a primary key. Such customerattributes may correspond to the columns of the Customers list. Theparent Customers list may be related to a child “Orders” list thatstores a number of records each corresponding to a particular order.Each such record may include data for a set of order attributes such as,for example, an order ID, a customer ID, and a price. The customer IDattribute of the Orders list is a look up value in a foreign table,which is referred to as a foreign key. Such order attributes maycorrespond to the columns of the Orders list. A common operation that isperformed with respect to such parent and child lists is to retrievechild data for a selected parent record. For example, a user may requestdata for all orders that have been placed by a selected customer. Toidentify such orders, the customer ID for the selected customer may befirst looked up from the Customers list and then cross referencedagainst data for the customer ID attribute in the Orders list.

Conventional development tools may enable the user to view and managechild data through a series of complex manual steps. For example, theuser may import a parent list and a related child list from a datasource. The user may explicitly define a relationship between the listswithin the development tool. The user may then add display controls tothe development tool and bind the display controls to the lists.Finally, the user may write parameterized code to retrieve recordswithin the child list that correspond to a selected parent record.

The execution of the steps set forth above is often a time consuming andtedious process that is likely to require a strong proficiency with thedevelopment tool. Thus, there is a need in the art for an automated taskfor exposing a child list. It is desired that the task may provide asimple user interface that enables the user to select a parent list, toview a set of available child lists corresponding to the selected parentlist, and to select a particular child list from the set of availablechild lists. It is further desired that the set of available child listsbe automatically compiled in response to the selection of the parentlist. It is further desired that the task provide another user interfacethat enables the user to select a particular portion of the parent listfor which to view corresponding child data. It is further desired thatthe corresponding child data may be automatically obtained in responseto the selection of the portion of parent the list. Other features andadvantages of the invention may become apparent from the followingdetailed description of the invention and accompanying drawings.

SUMMARY OF THE INVENTION

Systems and methods for exposing a child list are disclosed. Aninterface may be provided that enables a user to select a parent list.In response to the selection of the parent list, a set of availablechild lists that are related to the selected parent list may beidentified. The set of available child lists may be identified byexamining a local schema. The set of available child lists may also beidentified by examining a remote schema of a data source in which theselected parent list is stored. A user interface may be provided thatenables the user to select a particular child list from the set ofavailable child lists.

According to an aspect of the invention, it may be determined if theschema for the selected child list is available locally. If the schemafor the selected child list is not available locally, then it may beretrieved from the remote data source schema. The retrieved remote datasource schema may be merged with the local schema.

According to another aspect of the invention, a user interface may beprovided that enables the user to select a portion of the parent listfor which to view corresponding child data. Upon selecting the portionof the parent list, a corresponding portion of the child list may beautomatically identified. The corresponding portion of the child listmay be identified by, for example, defining a relationship between theparent and the child list. The corresponding portion of the child listmay also be identified by, for example, determining query parametersbased on the attributes of the selected portion of the parent list,generating parameterized code including the query parameters; andquerying the child list with the parameterized code. Upon beingidentified, the selected portion of the child list may be displayed in arunning application.

Additional features and advantages of the invention will be madeapparent from the following detailed description of illustrativeembodiments that proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The illustrative embodiments will be better understood after reading thefollowing detailed description with reference to the appended drawings,in which:

FIG. 1 is a block diagram representing a general purpose computer systemin which aspects of the present invention and/or portions thereof may beincorporated;

FIG. 2 is a block diagram of an exemplary development environment inaccordance with the present invention;

FIG. 3 shows an exemplary designer interface in accordance with thepresent invention;

FIG. 4 shows an exemplary add child dialog box in accordance with thepresent invention;

FIG. 5 shows an exemplary display for parent and child data inaccordance with the present invention;

FIG. 6 shows another exemplary display for parent and child data inaccordance with the present invention; and

FIG. 7 shows a flowchart of an exemplary method for exposing child datain accordance with the present invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The subject matter of the present invention is described withspecificity to meet statutory requirements. However, the descriptionitself is not intended to limit the scope of this patent. Rather, theinventors have contemplated that the claimed subject matter might alsobe embodied in other ways, to include different steps or elementssimilar to the ones described in this document, in conjunction withother present or future technologies. Moreover, although the term “step”may be used herein to connote different aspects of methods employed, theterm should not be interpreted as implying any particular order among orbetween various steps herein disclosed unless and except when the orderof individual steps is explicitly described.

We will now explain the present invention with reference to presentlypreferred, exemplary embodiments. We will first describe illustrativecomputing and development environments in which the invention may bepracticed, and then we will describe presently preferred implementationsof the invention.

Illustrative Computer Environment

FIG. 1 and the following discussion are intended to provide a briefgeneral description of a suitable computing environment in which thepresent invention and/or portions thereof may be implemented. Althoughnot required, the invention is described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer, such as a client workstation or an applicationservice. Generally, program modules include routines, programs, objects,components, data structures and the like that perform particular tasksor implement particular abstract data types. Moreover, it should beappreciated that the invention and/or portions thereof may be practicedwith other computer system configurations, including hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers and thelike. The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

As shown in FIG. 1, an exemplary general purpose computing systemincludes a conventional personal computer 120 or the like, including aprocessing unit 121, a system memory 122, and a system bus 123 thatcouples various system components including the system memory to theprocessing unit 121. The system bus 123 may be any of several types ofbus structures including a memory bus or memory controller, a peripheralbus, and a local bus using any of a variety of bus architectures. Thesystem memory includes read-only memory (ROM) 124 and random accessmemory (RAM) 125. A basic input/output system 126 (BIOS), containing thebasic routines that help to transfer information between elements withinthe personal computer 120, such as during start-up, is stored in ROM124.

The personal computer 120 may further include a hard disk drive 127 forreading from and writing to a hard disk (not shown), a magnetic diskdrive 128 for reading from or writing to a removable magnetic disk 129,and an optical disk drive 130 for reading from or writing to a removableoptical disk 131 such as a CD-ROM or other optical media. The hard diskdrive 127, magnetic disk drive 128, and optical disk drive 130 areconnected to the system bus 123 by a hard disk drive interface 132, amagnetic disk drive interface 133, and an optical drive interface 134,respectively. The drives and their associated computer-readable mediaprovide non-volatile storage of computer readable instructions, datastructures, program modules and other data for the personal computer120.

Although the exemplary environment described herein employs a hard disk,a removable magnetic disk 129, and a removable optical disk 131, itshould be appreciated that other types of computer readable media whichcan store data that is accessible by a computer may also be used in theexemplary operating environment. Such other types of media include amagnetic cassette, a flash memory card, a digital video disk, aBernoulli cartridge, a random access memory (RAM), a read-only memory(ROM), and the like.

A number of program modules may be stored on the hard disk, magneticdisk 129, optical disk 131, ROM 124 or RAM 125, including an operatingsystem 135, one or more application 212 programs 136, other programmodules 137 and program data 138. A user may enter commands andinformation into the personal computer 120 through input devices such asa keyboard 140 and pointing device 142 such as a mouse. Other inputdevices (not shown) may include a microphone, joystick, game pad,satellite disk, scanner, or the like. These and other input devices areoften connected to the processing unit 121 through a serial portinterface 146 that is coupled to the system bus, but may be connected byother interfaces, such as a parallel port, game port, or universalserial bus (USB). A monitor 147 or other type of display device is alsoconnected to the system bus 123 via an interface, such as a videoadapter 148. In addition to the monitor 147, a personal computertypically includes other peripheral output devices (not shown), such asspeakers and printers. The exemplary system of FIG. 1 also includes ahost adapter 155, a Small Computer System Interface (SCSI) bus 156, andan external storage device 162 connected to the SCSI bus 156 Thepersonal computer 120 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 149. The remote computer 149 may be another personal computer,a application service, a router, a network PC, a peer device or othercommon network node, and typically includes many or all of the elementsdescribed above relative to the personal computer 120, although only amemory storage device 150 has been illustrated in FIG. 1. The logicalconnections depicted in FIG. 1 include a local area network (LAN) 151and a wide area network (WAN) 152. Such networking environments arecommonplace in offices, enterprise-wide computer networks, intranets,and the Internet.

When used in a LAN networking environment, the personal computer 120 isconnected to the LAN 151 through a network interface or adapter 153.When used in a WAN networking environment, the personal computer 120typically includes a modem 154 or other means for establishingcommunications over the wide area network 152, such as the Internet. Themodem 154, which may be internal or external, is connected to the systembus 123 via the serial port interface 146. In a networked environment,program modules depicted relative to the personal computer 120, orportions thereof, may be stored in the remote memory storage device. Itwill be appreciated that the network connections shown are exemplary andother means of establishing a communications link between the computersmay be used.

Systems and Methods of the Present Invention

An exemplary development environment 200 in accordance with the presentinvention is shown in FIG. 2. Generally, development tool 210 enablesthe development of computing applications. Data source 220 operates inconnection with development tool 210 to categorize, organize, andmaintain data that is useful to applications. Data source 220 may be forexample, a database, a web service, an extensible markup language (XML)document, or an object.

Data source 220 includes Customers list 222 a, Orders list 222 b, andEmployees list 222 c. As should be appreciated, data source 222 mayinclude any number of lists each including any type of data in additionto or in place of list 222 a-c. “Customers” list 222 a includes a numberof records each corresponding to a particular customer. Exemplary datafor Customers list 222 a is shown below in Table 1:

TABLE 1 Customer ID Name Zip Code 1 Jim 00001 2 Bill 00002

As shown in Table 1, the Customers list 222 a has three columns whichcorrespond to three customer attributes: customer ID, name, and zipcode. The Customer ID attribute is a distinct lookup key referred to asa primary key. Customers list 222 a includes two records for Customers“1” and “2”.

Exemplary data for Orders list 222 b is shown below in Table 2:

TABLE 2 Order ID Customer ID Price A 1 10 B 1 20 C 1 30 D 2 15 E 2 25

As shown in Table 2, Orders list 222 b has three columns whichcorrespond to three order attributes: order ID, customer ID, and orderprice. The customer ID attribute of the Orders list 222 b is a look upvalue in a foreign table, which is referred to as a foreign key. Orderslist 222 a includes five records for Orders “A” through “E”. Orders “A”through “C” have been placed by Customer “1”, while Orders “D” and “E”have been placed by Customer “2”. Data for Employees list 222 c is notshown, however Employees list 222 c may be another child list of parentCustomers list 222 a.

As shown by the data in Tables 1 and 2, Customers list 222 a and Orderslist 222 b have a parent child relationship, in which each order recordin Orders list 222 b corresponds to a particular customer record inCustomer record in Customers list 222 a.

Importantly, data source 220 may be accessed by development tool 210 viaa data source interface 215. Data source interface 215 may provide alogical view of the schema of data source 220, as described in detail inthe aforementioned U.S. patent application Ser. No. 10/769,637 entitled“System and Method for Providing a Logical View of a Data Source.”

Data source interface 215 may be used in connection with designer 212,which is an interface that enables the user to create, view, manage, andmanipulate objects associated with a development project. Such objectsmay include forms and controls. A form is an object that enables thepresentation of information to the user and the acceptance of inputinformation from the user. A form may expose properties which define itsappearance, methods which define its behavior, and events which defineits interaction with the user. By setting its properties and writingcode to respond to its events, a user may customize a form to meet therequirements of an application. A simple way to define a user interfacefor a form is to place controls on the form's surface.

A control is an object that is contained within a form. A control may bean object such as, for example, a data grid view, a drop down list, acombo-box, a button, or a check-box. Each type of control has its ownset of properties, methods, and events that make it suitable for aparticular purpose. The designer 212 enables a user to add controls to aform. For example, the designer 212 may enable a control to be added toa form by dragging and dropping the control from a toolbox, doubleclicking on the control in a toolbox, or selecting the control in atoolbox and lassoing an area in the form. Once a control is added to aform, the designer 212 enables the control to be aligned and positionedwithin the form.

An important feature of designer 212 is that objects in the designer 212may be bound to elements within a data source. For example, a form inthe designer 212 may be bound to Customers list 222 a. Once bound to aparticular data source element, an object may be automatically populatedwith the underlying data in the data source element. There are a numberof methods for binding an object in the designer 212 to a data sourceelement. For example, a data source element may be dragged from the datasource interface 215 and dropped onto the object in the designer 212.

An exemplary designer 212 in accordance with the present invention isshown in FIG. 3. Designer 212 includes form 312. Designer 212 alsoincludes data source interface 215, which displays an exemplary schemaof data source 220. Form 312 is bound to Customers list 222 a withindata source 220, as indicated by the dashed line shown in FIG. 3.Importantly, the schema shown in data source interface 215 is only alocal schema that is stored at development tool 210. Underlying datasource 220 may include additional elements that are not depicted in thelocal schema. Such underlying elements may be identified by directlyquerying a remote schema of data source 220.

Form 312 has an associated smart user interface panel 314. Such a smartuser interface panel is described in the aforementioned U.S. patentapplication Ser. No. 10/768,522 entitled “System and Method for ExposingTasks in a Development Environment.” Generally, panel 314 exposes a setof exemplary developer tasks available in connection with form 312. Onesuch task is the retrieve and “add child form” task. In addition to userinterface panel 430, the “add child form” task may also be exposedusing, for example, a traditional menu bar or a context menu.

In response to selecting the add child form task, an add child formdialog box may be displayed to the user in designer 212. Referring nowto FIG. 4, exemplary add child dialog box 400 includes a select parentlist drop down menu 410, which enables the user to select a parent list.As should be appreciated, in place of the drop down menu 410, dialog box400 may include other user input fields such as, for example checkboxes, radio buttons, or a cascading tree display. Because the task islaunched from form 312, the default value of drop down menu 410 may beset to the list to which form 312 is bound, which, in this case, is“Customers” list 220 a. Other elements displayed in drop down menu 410may include, for example, other lists 222 b and 222 c within data source220.

Dialog box 400 also includes select child list input field 420. Selectchild list input field 420 enables the user to select a particular childlist from among a set of available child lists related to the parentlist selected in drop down menu 410. An exemplary method for identifyingthe set of available child lists displayed in display 420 is discussedin detail below with reference to step 712 of FIG. 7.

Dialog box 400 also includes select display type input field 430. Selectdisplay type input field 430 enables the user to select a display typefor the child list selected via input field 420. Select display typeinput field 430 includes exemplary display types that include a detailsdisplay and a grid display. The details display shows each record withina set of records individually, enabling the user to scroll through eachrecord. The grid display shows a set of records together in traditionalgrid form. As should be appreciated, other types of displays arecontemplated in connection with the present invention and may be listedin input field 430 or another similar input field.

An exemplary display 500 for parent and child data in accordance withthe present invention is shown in FIG. 5. Display 500 includes a detailsdisplay 510 and a grid display 512. Details display 510 displaysindividual parent records. Grid display 512 displays child records thatcorrespond to the individual parent record shown in details display 510.

Details display 510 includes attribute fields for “Customer ID”, “Name”,and “Zip Code” attributes, which correspond to the columns of Customerslist 222 a shown in Table 1 above. The “Customer ID” attribute fieldshows that the data shown in details display 512 corresponds to Customer“1”.

Details display 510 includes scroll controls 514 a-d, which enable theuser to scroll through records stored in Customers list 222 a.Individual record advance control 514 c enables the user to advance to adirectly following record in a list of records, while final recordadvance control 514 d enables the user to advance to a final record in alist of records. Individual record return control 514 b enables the userto return to a directly preceding record in a list of records, whileinitial record return control 514 a enables the user to return to aninitial record in a list of records.

Grid display 512 includes columns “Order ID”, “Customer ID”, and“Price”, which correspond to the columns of Orders list 222 b shown inTable 2. Importantly, grid display 222 only shows records for orderswhich have been placed by Customer “1”.

Another exemplary display 600 for parent and child data in accordancewith the present invention is shown in FIG. 6. Unlike details display510 of FIG. 5 which shows data corresponding to Customer “1”, detailsdisplay 610 of FIG. 6 shows data corresponding to Customer “2”.Furthermore, unlike grid display 512 of FIG. 5 which shows records fororders which have been placed by Customer “1”, grid display 612 of FIG.6 shows records for orders which have been placed by Customer “2”.

The user may move from details display 510 of FIG. 5 to details display610 of FIG. 6 by, for example, clicking individual record advancenavigation control 514 c or final record advance navigation control 514d of FIG. 5 with an attached mouse. The user may return to detailsdisplay 510 of FIG. 5 from details display 610 of FIG. 6 by, forexample, clicking individual record return navigation control 614 b orfinal record return navigation control 614 of FIG. 6 with an attachedmouse.

A flowchart of an exemplary method for exposing child data in accordancewith the present invention is shown in FIG. 7. The method of FIG. 7 maybe initiated, for example, by selecting the “add child for” task setforth above with respect to FIG. 3 or another similar task.

At step 710, a user interface to select the parent list is provided. Theuser interface may be, for example, select parent drop down menu 410 ofFIG. 4. Alternatively, the parent list may be automatically identifiedbased on context information. For example, if the add child data task isrequested from form 312, then “Customers” list 222 a may beautomatically identified as the parent list because it is the list towhich form 312 is bound.

At step 712, a set of available child lists is identified. The setincludes the child lists that are related to the parent list identifiedat step 710. To identify the available child lists, a local version of adata source schema that is stored at development tool 210, such as theschema displayed in data source interface 215 of FIG. 3, may beexamined. Additionally, a remote schema at the underlying data source220 may also be examined to identify additional child lists not includedin the local data source schema.

At step 714, a user interface to select a child list is provided. Theuser interface preferably displays the set of available child listsidentified at step 712 and enables the user to select a particular childlist from the set. The user interface may be, for example, select childlist input field 420 of FIG. 4.

At step 716, it is determined whether the schema for the selected childlist is available locally. If the schema for the selected child list isnot available locally, then, at step 718, the schema for the selectedchild list is retrieved from data source 220.

At step 720, the schema for the selected child list may be merged intothe local data source schema stored at development tool 210. Step 720 isan optional step. A dialog box may be displayed to the user which asksthe user if she wishes to merge the schema for the selected child listinto the local data source schema. The changing of the local schema maytrigger designer 212 to regenerate code that it produces from the localschema.

At step 722, an interface to select a display type for the child list isprovided. Such an interface may be, for example, select display typeinput field 430 of FIG. 4. The display type may be, for example, adetails display or a grid display. Exemplary details displays 510 and610 and grid displays 512 and 612 are discussed in detail with referenceto FIGS. 6 and 7 above.

At step 724, an interface to select a particular parent record isprovided. The selected parent record is the parent record for which toretrieve child data. The interface may be, for example, details display610 and 710 of FIGS. 6 and 7, which enable the user to select aparticular parent record using scroll controls 614 a-d and 714 a-d,respectively. Alternatively, a parent record may be selected from a griddisplay, for example, clicking on the record with an attached mouse.

At step 726, child data records corresponding to the selected parentrecord are identified. The corresponding child data records may beidentified by, for example, explicitly defining a relationship betweenthe parent and child lists within development tool 210. Specifically, akey attribute that may be used to cross reference child data may bedefined. For example, “Customer ID” is a key attribute of Customer list222 a that may be cross referenced against Orders list 222 b todetermine orders placed by a particular customer.

The corresponding child data records may also be identified by, forexample, determining query parameters based on the attributes of theselected portion of the parent list, generating parameterized codeincluding the query parameters; and querying the child list with theparameterized code. For example, if customer “1” is selected from parentCustomers list 222 a as shown in display 500 of FIG. 5, then childorders list 222 b may be queried with “Customer ID=1” as a queryparameter.

At step 728, corresponding child data records are exposed to the user.In addition to generating an interface to display the child datarecords, all the components and code required to retrieve the child datafrom data source 220 are generated. The records may be exposed using thedisplay type selected by the user at step 722. Once the child data isdisplayed, the user may, for example, view and edit data as desired foran application with which she is working. Any modifications made to thedata may optionally be propagated back to the data source 220. The usermay also perform further tasks and operations on the child data as madeavailable by development tool 210.

CONCLUSION

Thus, exemplary systems and methods for exposing child data have beendisclosed. As set for the above, a simple user interface may enable theuser to select a parent list, to view a set of available child listscorresponding to the selected parent list, and to select a particularchild list from the set of available child lists. The set of availablechild lists may be automatically compiled in response to the selectionof the parent list. If the selected child list is not included in alocal schema, a data source schema that includes the selected child listmay be optionally merged into the local schema. Another user interfacemay be provided that enables the user to select a particular portion ofthe parent list for which to view corresponding child data. Thecorresponding child data may be automatically obtained in response tothe selection of the portion of parent the list.

While the present invention has been described in connection with thepreferred embodiments of the various figures, it is to be understoodthat other similar embodiments may be used or modifications andadditions may be made to the described embodiment for performing thesame function of the present invention without deviating therefrom. Forexample, the parent and child lists may be displayed separately ratherthan in a single interface. Therefore, the present invention should notbe limited to any single embodiment, but rather should be construed inbreadth and scope in accordance with the appended claims.

1. A method for exposing a child list that is related to a parent list, the method comprising: displaying a form in a designer interface within a development environment, wherein the development environment provides a data source interface for accessing a remote data source stored remotely from the development environment, the remote data source having a remote data source schema stored at the remote data source; binding a parent list to the form by displaying the parent list in the data source interface, dragging the parent list from the data source interface, and dropping the parent list onto the form in the designer interface; receiving a request to add a child list to the form; responsive to the request: identifying the parent list bound to the form; identifying a set of available child lists related to the parent list by examining a data source schema that is stored at the development environment and by querying the remote data source schema to identify a child list that is not included in the data source schema that is stored at the development environment; providing a user interface that enables a user to select the child list from the set of available child lists and to select a portion of the parent list for which to view a corresponding portion of the child list; Identifying the corresponding portion of the child list at least in part by: a) determining query parameters based on the selected portion of the parent list: b) generating parameterized code including the query parameters: and c) querying the child list with the parameterized code: examining a first schema that is stored locally and that comprises at least a portion of the remote data source schema to determine whether a schema for the selected child list is locally available; using the designer interface to generate code as a function of the first schema; upon determining that the schema for the selected child list is locally available, providing the schema for the child list to a display device for display on the display device; upon determining that the schema for the selected child list is not locally available: a1) retrieving the schema for the selected child list from a second schema that is stored at the remote data source; b1) merging the schema for the selected child list with the first schema; c1) in response to merging the schema for the selected child list with the first schema, causing the designer interface to regenerate code that the designer interface generated as a function of the first schema; and d1) providing the merged first schema including the schema for the child list to a display device for display on the display device; providing a parent selection interface for selecting a parent record from the parent list; receiving, via the parent selection interface, a selection of a parent record; identifying a plurality of child data records that correspond to the selected parent record; generating a child record display interface for displaying the child data records that correspond to the selected parent record, code required to retrieve the child data records from the remote data source, and a component required to retrieve the child data records from the remote data source; receiving a modification of a child data record; and propagating the modification of the child data record to the remote data source.
 2. The method of claim 1, wherein identifying the set of available child lists comprises examining the first schema to identify the set of available child lists.
 3. The method of claim 1, wherein identifying the set of available child lists comprises querying the second data source schema to identify the set of available child lists.
 4. The method of claim 1, wherein identifying the corresponding portion of the child list further comprises: defining the relationship between the parent list and the child list; and identifying the corresponding portion of the child list based on the defined relationship.
 5. The method of claim 1, further comprising retrieving the corresponding portion of the child list from the remote data source.
 6. The method of claim 1, further comprising displaying the corresponding portion of the child list in a running application.
 7. A computer readable storage medium having stored thereon computer-executable instructions for performing steps comprising: displaying a form in a designer interface within a development environment, wherein the development environment provides a data source interface for accessing a remote data source stored remotely from the development environment, the remote data source having a remote data source schema stored at the remote data source; binding a parent list to the form by displaying the parent list in the data source interface, dragging the parent list from the data source interface, and dropping the parent list onto the form in the designer interface; receiving a request to add a child list to the form; responsive to the request: identifying the parent list bound to the form based on context information; identifying a set of available child lists related to the parent list by examining a data source schema that is stored at the development environment and by querying a remote data source schema to identify a child list that is not included in the data source schema that is stored in the development environment; providing a user interface that enables a user to select the child list from the set of available child lists and to select a portion of the parent list for which to view a corresponding portion of the child list; identifying the corresponding portion of the child list at least in part by: a) determining query parameters based on the selected portion of the parent list; b) generating parameterized code including the query parameters; and c) querying the child list with the parameterized code; examining a first schema that is stored locally and that comprises at least a portion of the remote data source schema to determine whether a schema for the selected child list is locally available; using the designer interface to generate code as a function of the first schema; upon determining that the schema for the selected child list is not locally available: a1) retrieving the schema for the selected child list from a second schema that is stored at the remote data source; b1) merging the schema for the selected child list with the first schema; c1) in response to merging the schema for the selected child list with the first schema, causing the designer interface to regenerate code that the designer interface generated as a function of the first schema; d1) providing the merged first schema including the schema for the child list to a display device for display on the display device; providing a parent selection interface for selecting a parent record from the parent list; receiving, via the parent selection interface, a selection of a parent record; identifying a plurality of child data records that correspond to the selected parent record; generating a child record display interface for displaying the child data records that correspond to the selected parent record, code required to retrieve the child data records from the remote data source, and a component required to retrieve the child data records from the remote data source; receiving a modification of a child data record; and propagating the modification of the child data record to the remote data source.
 8. The computer readable storage medium of claim 7, wherein identifying the set of available child lists comprises examining the first schema to identify the set of available child lists.
 9. The computer readable storage medium of claim 7, wherein identifying the set of available child lists comprises querying the second data source schema to identify the set of available child lists.
 10. The computer readable storage medium of claim 7, wherein identifying the corresponding portion of the child list further comprises: defining the relationship between the parent list and the child list; and identifying the corresponding portion of the child list based on the defined relationship. 